
Imports System


Namespace _2bMatesSite.BO
	''' <summary>
	''' Represents a user search criteria.
	''' </summary>
	Public Class UserFilter
		Public Shared minAge As Integer = Constants.MIN_AGE
		Public Shared maxAge As Integer = Constants.MAX_AGE

		Public Enum Gender
			ufgAny = -1
			ufgUnspecified = 0
			ufgMale = 1
			ufgFemale = 2
		End Enum

		Public Enum GenderPreference
			ufgpAny = -1
			ufgpUnspecified = 0
			ufgpMen = 1
			ufgpWomen = 2
			ufgpBoth = 3
		End Enum

		Public hasPhoto As Boolean = False
		' false means "doesn't matter" here
		Public hasFavSong As Boolean = False
		' false means "doesn't matter" here
		Public ageMetters As Boolean = False
		' false means "doesn't matter" here - added by ivan to fix bug in browse page
		Public ageFrom As Integer = minAge
		Public ageTo As Integer = maxAge
		Public gender As Gender = Gender.ufgAny
		Public genderPreference As GenderPreference = GenderPreference.ufgpAny
		Public status As MeritalStatus
		Public activityPreference As ActivityPreference
		' no constructor means all null/0/false
		Public orderBy As OrderBy = OrderBy.defaultOption

		Public email As String = Nothing
		Public name As String = Nothing
		Public lastName As String = Nothing
		Public interests As String = Nothing

		Public aboutMe As String = Nothing
		Public lookingFor As String = Nothing
		Public affiliations As String = Nothing
		Public companies As String = Nothing
		Public schools As String = Nothing
		Public music As String = Nothing
		Public books As String = Nothing
		Public tv As String = Nothing
		Public movies As String = Nothing
		Public occupation As String = Nothing

		Public countryID As Integer = -1
		Public city As String = Nothing

		' General looks in all of these:
		' "Interests"
		' "Music"
		' "Books"
		' "Movies"
		' "Affiliations"
		' "Companies"
		' "Schools"
		Public general As String = Nothing

		Public Structure MeritalStatus
			Public unspecified As Boolean
			Public [single] As Boolean
			' Single/Separated/Divorced
			Public relationship As Boolean
			Public openRelationship As Boolean
			Public married As Boolean
			Public openMarriage As Boolean
		End Structure

		Public Structure ActivityPreference
			Public dating As Boolean
			' Dating
			Public relationship As Boolean
			' Serious Relationship
			Public friends As Boolean
			' Friends
			Public partners As Boolean
			' Activity Partners
			Public penpals As Boolean
			' Penpals
			Public hangout As Boolean
			' Just hanging out
		End Structure

		Public Enum OrderBy
			defaultOption = -1
			' Name, Last name, Email
			recentlyUpdated = 1
			' Recently updated profiles
			lastLogin = 2
			' Last login users
			newUsers = 3
			' New users
		End Enum
	End Class
End Namespace






